package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 可视对讲设备对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_intercom_device")
public class HikDoorIntercomDevice {

	/**
	 * 通用名
	 */
	@NotBlank(message = "通用名不能为空")
	@Size(max = 512, message = "通用名长度不能超过512")
	private String cn;

	/**
	 * 资源编码
	 */
	@NotBlank(message = "资源编码不能为空")
	@Size(max = 64, message = "资源编码长度不能超过64")
	private String indexCode;

	/**
	 * 外部编码（联网编码）
	 */
	@NotBlank(message = "外部编码不能为空")
	@Size(max = 64, message = "外部编码长度不能超过64")
	private String externalIndexCode;

	/**
	 * 厂商
	 */
	@Size(max = 128, message = "厂商长度不能超过128")
	private String manufacturer;

	/**
	 * 设备型号
	 */
	@Size(max = 64, message = "设备型号长度不能超过64")
	private String devModel;

	/**
	 * 设备安装地址
	 */
	@Size(max = 64, message = "设备安装地址长度不能超过64")
	private String addr;

	/**
	 * 警区
	 */
	@Size(max = 64, message = "警区长度不能超过64")
	private String block;

	/**
	 * 父级资源编号（区域联网编码）
	 */
	@NotBlank(message = "父级资源编号不能为空")
	@Size(max = 64, message = "父级资源编号长度不能超过64")
	private String parentIndexCode;

	/**
	 * ip
	 */
	@Size(max = 64, message = "ip长度不能超过64")
	private String ip;

	/**
	 * 端口
	 */
	@Size(max = 8, message = "端口长度不能超过8")
	private String port;

	/**
	 * 用户名
	 */
	@Size(max = 64, message = "用户名长度不能超过64")
	private String userName;

	/**
	 * 设备口令
	 */
	@Size(max = 8, message = "设备口令长度不能超过8")
	private String password;

	/**
	 * 纬度
	 */
	@Size(max = 64, message = "纬度长度不能超过64")
	private String latitude;

	/**
	 * 经度
	 */
	@Size(max = 64, message = "经度长度不能超过64")
	private String longitude;

	/**
	 * 海拔(单位米)
	 */
	@Size(max = 64, message = "海拔长度不能超过64")
	private String altitude;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 主型号（1-室内机; 2-门口机; 3-围墙机; 4-管理机）
	 */
	@NotNull(message = "主型号不能为空")
	private Integer mainModel;

	/**
	 * 子型号 （1-数字室内机; 2-模拟室内机; 3-单元门口机; 4-别墅门口机; 5-围墙门口机; 6-嵌入式管理机; 7-PC管理机）
	 */
	@Size(max = 32, message = "子型号长度不能超过32")
	private String subModel;

	/**
	 * 设备编号
	 */
	@NotBlank(message = "设备编号不能为空")
	private String longNum;

	/**
	 * 数据状态
	 */
	private Integer status;

}
